From 2de8ca5830564b08ececa6e0ba95049fcef93c0e Mon Sep 17 00:00:00 2001 From: tsteven4 Date: Sun, 27 Mar 2016 06:43:24 -0600 Subject: [PATCH] various fixes for altitude in tpo readers: for TOPO versions older than 3, and TOPO versions 3 and newer, don't use an altitude of zero for unknown as this represents a valid altitude. for TOPO versions 3 and newer don't truncate the fractional part of altitude. for TOPO versions 3 and newer correctly convert negative altitudes. for TOPO versions 3 and newer change the value used to check for unknown altitudes. --- reference/LineStyles.gpx | 24 +- reference/LineStyles.kml | 24 +- reference/NegElev.tpo | Bin 0 -> 5977 bytes reference/NegElev.~tpo.gpx | 34 + reference/tpo-sample3.gpx | 46 +- reference/track/tpo-sample1.gpx | 6232 ++++++++----------------------- testo.d/tpo.test | 4 + tpo.cc | 20 +- 8 files changed, 1656 insertions(+), 4728 deletions(-) create mode 100644 reference/NegElev.tpo create mode 100644 reference/NegElev.~tpo.gpx diff --git a/reference/LineStyles.gpx b/reference/LineStyles.gpx index 7db20e3cd..52070dba1 100644 --- a/reference/LineStyles.gpx +++ b/reference/LineStyles.gpx @@ -3,73 +3,73 @@ - 2.000000 + 2.130000 HairDash0 HairDash0 HairDash0 - 3.000000 + 3.350000 ThinDash0 ThinDash0 ThinDash0 - 4.000000 + 4.570000 RedHair0 RedHair0 RedHair0 - 8.000000 + 8.840000 RedThin0 RedThin0 RedThin0 - 21.000000 + 21.030000 RedMed0 RedMed0 RedMed0 - 64.000000 + 64.920000 RedThick0 RedThick0 RedThick0 - 125.000000 + 125.580000 YellowMed0 YellowMed0 YellowMed0 - 61.000000 + 61.260000 GreenMed0 GreenMed0 GreenMed0 - 39.000000 + 39.320000 BlueMed0 BlueMed0 BlueMed0 - 37.000000 + 37.490000 PurpleMed0 PurpleMed0 PurpleMed0 - 59.000000 + 59.440000 BlackMed0 BlackMed0 BlackMed0 - 49.000000 + 49.680000 WhiteMed0 WhiteMed0 WhiteMed0 diff --git a/reference/LineStyles.kml b/reference/LineStyles.kml index 4d53894e3..30c4b97f3 100644 --- a/reference/LineStyles.kml +++ b/reference/LineStyles.kml @@ -77,84 +77,84 @@ HairDash0 #waypoint - -122.291541,37.538136,2.00 + -122.291541,37.538136,2.13 ThinDash0 #waypoint - -122.291663,37.535986,3.00 + -122.291663,37.535986,3.35 RedHair0 #waypoint - -122.292032,37.533444,4.00 + -122.292032,37.533444,4.57 RedThin0 #waypoint - -122.292277,37.530854,8.00 + -122.292277,37.530854,8.84 RedMed0 #waypoint - -122.292584,37.528654,21.00 + -122.292584,37.528654,21.03 RedThick0 #waypoint - -122.292646,37.524989,64.00 + -122.292646,37.524989,64.92 YellowMed0 #waypoint - -122.292093,37.520199,125.00 + -122.292093,37.520199,125.58 GreenMed0 #waypoint - -122.291847,37.517951,61.00 + -122.291847,37.517951,61.26 BlueMed0 #waypoint - -122.291970,37.515653,39.00 + -122.291970,37.515653,39.32 PurpleMed0 #waypoint - -122.291111,37.513161,37.00 + -122.291111,37.513161,37.49 BlackMed0 #waypoint - -122.291356,37.510277,59.00 + -122.291356,37.510277,59.44 WhiteMed0 #waypoint - -122.291725,37.508029,49.00 + -122.291725,37.508029,49.68 diff --git a/reference/NegElev.tpo b/reference/NegElev.tpo new file mode 100644 index 0000000000000000000000000000000000000000..4d898e4c9f97aa143c6c2469ae361ad562bf30e9 GIT binary patch literal 5977 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 Fe*top83+IX literal 0 HcmV?d00001 diff --git a/reference/NegElev.~tpo.gpx b/reference/NegElev.~tpo.gpx new file mode 100644 index 000000000..be388c653 --- /dev/null +++ b/reference/NegElev.~tpo.gpx @@ -0,0 +1,34 @@ + + + + + + -11.000000 + MINUS11m + MINUS11m + MINUS11m + + + -53.000000 + MINUS53m + MINUS53m + MINUS53m + + + 14.000000 + PLUS14m + PLUS14m + PLUS14m + + + -1.000000 + MINUS1m + MINUS1m + MINUS1m + + + UnknownElevation + UnknownElevation + UnknownElevation + + diff --git a/reference/tpo-sample3.gpx b/reference/tpo-sample3.gpx index fbc16622f..440ee0a4d 100644 --- a/reference/tpo-sample3.gpx +++ b/reference/tpo-sample3.gpx @@ -2,79 +2,79 @@ - 2428.000000 + 2428.350000 001 001 001 - 2439.000000 + 2439.930000 002 002 002 - 2462.000000 + 2462.180000 003 WITH MESSAGE WITH MESSAGE - 2559.000000 + 2559.110000 GPSRTE0 GPSRTE0 GPSRTE0 - 2582.000000 + 2582.580000 GPSRTE1 GPSRTE1 GPSRTE1 - 2586.000000 + 2586.840000 GPSRTE2 GPSRTE2 GPSRTE2 - 2612.000000 + 2612.140000 GPSRTE3 GPSRTE3 GPSRTE3 - 2606.000000 + 2606.350000 GPSRTE4 GPSRTE4 GPSRTE4 - 2632.000000 + 2632.560000 GPSRTE5 GPSRTE5 GPSRTE5 - 2627.000000 + 2627.080000 GPSRTE6 GPSRTE6 GPSRTE6 - 2622.000000 + 2622.200000 GPSRTE7 GPSRTE7 GPSRTE7 - 2639.000000 + 2639.880000 GPSRTE8 GPSRTE8 GPSRTE8 - 2599.000000 + 2599.030000 GPSRTE9 GPSRTE9 GPSRTE9 @@ -136,43 +136,43 @@ RTE 1 1 - 2559.000000 + 2559.110000 GPSRTE0 - 2582.000000 + 2582.580000 GPSRTE1 - 2586.000000 + 2586.840000 GPSRTE2 - 2612.000000 + 2612.140000 GPSRTE3 - 2606.000000 + 2606.350000 GPSRTE4 - 2632.000000 + 2632.560000 GPSRTE5 - 2627.000000 + 2627.080000 GPSRTE6 - 2622.000000 + 2622.200000 GPSRTE7 - 2639.000000 + 2639.880000 GPSRTE8 - 2599.000000 + 2599.030000 GPSRTE9 diff --git a/reference/track/tpo-sample1.gpx b/reference/track/tpo-sample1.gpx index 5fa907f4b..0fb63e190 100644 --- a/reference/track/tpo-sample1.gpx +++ b/reference/track/tpo-sample1.gpx @@ -5,4830 +5,1714 @@ Track 1 - - 0.000000 - - - 0.000000 - + + Track 2 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + + + + + + + Track 3 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + Track 4 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + + + + + + + + + + + + + + + + + Track 5 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Track 6 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Track 7 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Track 8 - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + Track 9 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + + + + + + + + + + + + + + + + + Track 10 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Track 11 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Track 12 - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + Track 13 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + Track 14 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + Track 15 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Track 16 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Track 17 - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + Track 18 - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + Track 19 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Track 20 - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + Track 21 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Track 22 - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + Track 23 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Track 24 - - 0.000000 - - - 0.000000 - + + Track 25 - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + Track 26 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + Track 27 - - 0.000000 - - - 0.000000 - + + Track 28 - - 0.000000 - - - 0.000000 - + + Track 29 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + Track 30 - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - - - 0.000000 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Track 31 - - 0.000000 - - - 0.000000 - + + diff --git a/testo.d/tpo.test b/testo.d/tpo.test index b31701fe6..89876ec95 100644 --- a/testo.d/tpo.test +++ b/testo.d/tpo.test @@ -23,3 +23,7 @@ compare ${REFERENCE}/tpo-sample3.gpx ${TMPDIR}/tpo-sample3.gpx2 gpsbabel -t -w -r -i tpo3 -f ${REFERENCE}/LineStyles.tpo -o gpx -F ${TMPDIR}/LineStyles.gpx -o kml -F ${TMPDIR}/LineStyles.kml compare ${REFERENCE}/LineStyles.gpx ${TMPDIR}/LineStyles.gpx compare ${REFERENCE}/LineStyles.kml ${TMPDIR}/LineStyles.kml +# check negative and unknown altitudes +rm -f ${TMPDIR}/NegElev.~tpo.gpx +gpsbabel -i tpo3 -f ${REFERENCE}/NegElev.tpo -o gpx -F ${TMPDIR}/NegElev.~tpo.gpx +compare ${REFERENCE}/NegElev.~tpo.gpx ${TMPDIR}/NegElev.~tpo.gpx diff --git a/tpo.cc b/tpo.cc index be4d932a4..270fd1997 100644 --- a/tpo.cc +++ b/tpo.cc @@ -153,6 +153,7 @@ tpo_check_version_string() string_buffer[string_size] = 0; /* check for the presence of a 3.0-style id string */ + /* Note this check also finds version 4 id strings, e.g. "TOPO! Ver. 4.5.0" */ if (strncmp(v3_id_string, string_buffer, strlen(v3_id_string)) == 0) { /* fatal(MYNAME ": gpsbabel can only read TPO version 2.7.7 or below; this file is %s\n", string_buffer); */ //fprintf(stderr,"gpsbabel can only read TPO version 2.7.7 or below; this file is %s\n", string_buffer); @@ -356,7 +357,8 @@ void tpo_read_2_x(void) 78); /* there is no elevation data for the waypoints */ - waypoint_temp->altitude = 0; + /* this is unecessary, the constructor will do this anyway. */ + waypoint_temp->altitude = unknown_alt; track_add_wpt(track_temp, waypoint_temp); } @@ -846,7 +848,7 @@ void tpo_process_waypoints(void) unsigned int name_length; int lat; int lon; - unsigned int altitude; + int altitude; //UNKNOWN DATA LENGTH (void)tpo_read_int(); // 0x00 @@ -877,13 +879,17 @@ void tpo_process_waypoints(void) // Assign the waypoint name waypoint_temp->shortname = waypoint_name; - // Grab the altitude in meters + // Grab the altitude in centimeters altitude = gbfgetint32(tpo_file_in); - if (altitude == 0xfffd000c) { // Unknown altitude - altitude = 0; + // The original untested check for unknown altitude was for 0xfffd000c (-196596 cm), + // but a test case submitted later used 0xffce0000 (-3276800 cm). + if (altitude == -3276800) { // Unknown altitude + /* this is unecessary, the constructor will do this anyway. */ + waypoint_temp->altitude = unknown_alt; + } else { + waypoint_temp->altitude = (double) altitude / 100.0; // Meters } - waypoint_temp->altitude = altitude / 100; // Meters -//printf("\tAltitude: %1.0f meters\n", waypoint_temp->altitude); +//printf("\tAltitude: %1.2f meters\n", waypoint_temp->altitude); //UNKNOWN DATA LENGTH // Fetch comment length -- 2.30.2